#!/bin/bash

# ----------------------------------------------------------------------
# Filename:   75646-chcon.sh
# Version:    1.0
# Date:       2013/12/19
# Author:     yuanhui.shi
# Email:      yuanhui.shi@cs2c.com.cn
# Summary:    03系统安全功能-01SELinux-03SELinux重要命令-03SELinux安全上下文标签相关命令-10chcon和restorecon
# Notes:      改变安全上下文 chcon restorecon
# Copyright:  China Standard Software Co., Ltd.
# History：     
#             Version 1.0, 2013/12/19
#             -   The first one
# ----------------------------------------------------------------------

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

source ../../lib/Echo.sh
source ../../lib/XmlParse.sh
source ./lib/Selib.sh

function CleanData ()
{
  EchoInfo "75646-chcon.sh执行完毕"
}

trap "CleanData" EXIT
CheckSElinuxStatus

EchoInfo "查看系统默认情况下/etc/vsftpd/vsftpd.conf的安全上下文信息"
SELINUX_CONTEXT=`ls --scontext /etc/vsftpd/vsftpd.conf |cut -d " " -f1`
echo $SELINUX_CONTEXT

EchoInfo "修改vsftpd.conf文件安全上下文信息"
chcon -t tmp_t /etc/vsftpd/vsftpd.conf
[ "`ls --scontext /etc/vsftpd/vsftpd.conf |cut -d " " -f1`" == "system_u:object_r:tmp_t:s0" ]
EchoResult "命令chcon -t 执行后，文件安全上下文信息修改正确"

EchoInfo "再次修改vsftpd.conf文件安全上下文信息,让它与httpd.conf相同"
chcon --reference=/etc/httpd/conf/httpd.conf /etc/vsftpd/vsftpd.conf
[ "`ls --scontext /etc/vsftpd/vsftpd.conf |cut -d " " -f1`" == "`ls --scontext /etc/httpd/conf/httpd.conf |cut -d ' ' -f1`" ]
EchoResult "命令chcon --reference执行后，文件安全上下文信息修改正确"

EchoInfo "恢复文件vsftpd.conf的系统默认安全上下文信息"
restorecon /etc/vsftpd/vsftpd.conf
[ "`ls --scontext /etc/vsftpd/vsftpd.conf|cut -d " " -f1`" == "$SELINUX_CONTEXT" ]
EchoResult "命令restorecon 执行后，文件的安全上下文信息恢复正确"
